{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "使用TextRank\n",
      "['算法', '技术', '经验', '能力', '产品', '项目', '公司', '专业', '团队', '系统', '软件', '岗位职责', '硕士', '行业', '数据', '领域', '业务', '模型', '计算机', '问题']\n",
      "使用TF-IDF\n",
      "['算法', '经验', '岗位职责', '能力', '硕士', '技术', '专业', '团队', '项目', '产品', '编程', '软件', '图像处理', '系统', '计算机', '文档', '岗位', '模型', '公司', '硬件']\n",
      "使用TF\n",
      "['相关', '算法', '熟悉', '开发', '经验', '负责', '能力', '工作', '优先', '技术', '设计', '要求', '具有', '产品', '专业', '项目', '良好', '以上', '任职', '研究']\n"
     ]
    }
   ],
   "source": [
    "# 全语料\n",
    "import jieba\n",
    "import jieba.analyse\n",
    "from collections import Counter\n",
    "jieba.load_userdict(\"userdict.txt\") \n",
    "file_name = \"all/all_context.txt\"\n",
    "content = open(file_name, 'r',encoding='utf-8').read()\n",
    "print('使用TextRank')\n",
    "dic = jieba.analyse.textrank(content, topK=20, withWeight=False, allowPOS=('n'))\n",
    "print(dic)\n",
    "print('使用TF-IDF')\n",
    "content = open(file_name, 'r',encoding='utf-8').read()\n",
    "tags = jieba.analyse.extract_tags(content, topK=20,withWeight=False,allowPOS=('n'))\n",
    "print(tags)\n",
    "print('使用TF')\n",
    "seg_list = jieba.cut(content)\n",
    "c = Counter()\n",
    "key = []\n",
    "for x in seg_list:\n",
    "    if len(x) > 1 and x != '\\r\\n':\n",
    "        c[x] += 1\n",
    "# 提取前20个\n",
    "for (k, v) in c.most_common(20):\n",
    "    key.append(k)\n",
    "print(key)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "使用text-rank\n",
      "['算法', '技术', '经验', '能力', '产品', '项目', '数据', '专业', '团队', '系统', '模型', '领域', '公司', '计算机', '数学', '岗位职责', '硕士', '图像处理', '问题', '业务', '图像', '编程', '建模', '信号处理', '基础', '平台', '实际', '人工智能', '视频', '精神', '软件', '模式识别', '行业', '方向', '电子', '工程', '用户', '岗位', '方法', '职位', '数据挖掘', '原理', '文档', '规划', '理论', '智能', '场景', '机器人', '视觉', '核心']\n",
      "使用tf-idf\n",
      "['算法', '经验', '岗位职责', '能力', '硕士', '技术', '图像处理', '编程', '专业', '团队', '模型', '计算机', '数学', '数据挖掘', '项目', '模式识别', '建模', '信号处理', '领域', '系统', '产品', '人工智能', '图像', '数据', '岗位', '平台', '编程语言', '文档', '框架', '视频', '职位', '基础', '语言', '软件', '机器人', '业务', '场景', '精神', '控制算法', '资格', '模块', '视觉', '职责', '原理', '问题', '方向', '实际', '电子', '工程', '工具']\n"
     ]
    }
   ],
   "source": [
    "# 算法\n",
    "import jieba\n",
    "import jieba.analyse\n",
    "jieba.load_userdict(\"userdict.txt\") \n",
    "file_name = \"context/algorithm.txt\"\n",
    "content = open(file_name, 'r',encoding='utf-8').read()\n",
    "# content = '酒店的床真不错，房间也合适'\n",
    "# topK表示输出多少个关键词,withWeight表示是否输出权重，如果想要获取权重,for x,w并将withWeight=True\n",
    "# allowPOS表示输出的词性\n",
    "# print(content)\n",
    "# 只保留名词\n",
    "print('使用text-rank')\n",
    "dic = jieba.analyse.textrank(content, topK=50, withWeight=False, allowPOS=('n'))\n",
    "print(dic)\n",
    "#\n",
    "print('使用tf-idf')\n",
    "content = open(file_name, 'r',encoding='utf-8').read()\n",
    "# 10表示输出的前10个\n",
    "tags = jieba.analyse.extract_tags(content, topK=50,withWeight=False,allowPOS=('n'))\n",
    "print(tags)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "使用text-rank\n",
      "['技术', '产品', '能力', '经验', '算法', '项目', '公司', '专业', '系统', '硬件', '团队', '行业', '岗位职责', '软件', '硕士', '电子', '方案', '领域', '问题', '计算机', '平台', '文档', '工程', '客户', '业务', '基础', '精神', '规划', '电路', '模型', '工程师', '数据', '器件', '岗位', '架构', '原理', '指导', '流程', '市场', '环境', '数学', '编程', '企业', '信号处理', '智能', '解决方案', '学历', '功能', '芯片', '部门']\n",
      "使用tf-idf\n",
      "['算法', '岗位职责', '经验', '能力', '技术', '产品', '硬件', '硕士', '专业', '团队', '项目', '软件', '文档', '系统', '编程', '计算机', '电子', '公司', '岗位', '电路', '流程', '平台', '方案', '客户', '图像处理', '信号处理', '架构', '模块', '芯片', '工程师', '行业', '责任心', '电路设计', '学历', '器件', '领域', '精神', '工具', '职位', '模型', '资格', '解决方案', '原理', '语言', '原理图', '问题', '建模', '数学', '基础', '工程']\n"
     ]
    }
   ],
   "source": [
    "# 硬件\n",
    "import jieba\n",
    "import jieba.analyse\n",
    "jieba.load_userdict(\"userdict.txt\") \n",
    "file_name = \"context/hardware.txt\"\n",
    "content = open(file_name, 'r',encoding='utf-8').read()\n",
    "# content = '酒店的床真不错，房间也合适'\n",
    "# topK表示输出多少个关键词,withWeight表示是否输出权重，如果想要获取权重,for x,w并将withWeight=True\n",
    "# allowPOS表示输出的词性\n",
    "# print(content)\n",
    "# 只保留名词\n",
    "print('使用text-rank')\n",
    "dic = jieba.analyse.textrank(content, topK=50, withWeight=False, allowPOS=('n'))\n",
    "print(dic)\n",
    "#\n",
    "print('使用tf-idf')\n",
    "content = open(file_name, 'r',encoding='utf-8').read()\n",
    "# 10表示输出的前10个\n",
    "tags = jieba.analyse.extract_tags(content, topK=50,withWeight=False,allowPOS=('n'))\n",
    "print(tags)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "使用text-rank\n",
      "['能力', '技术', '公司', '经验', '算法', '项目', '产品', '专业', '系统', '团队', '程序', '软件', '岗位职责', '编程', '硕士', '行业', '文档', '方案', '问题', '数据', '平台', '计算机', '业务', '基础', '硬件', '领域', '模型', '电子', '流程', '岗位', '图像处理', '精神', '规划', '电路', '架构', '原理', '部门', '数学', '工程', '客户', '代码', '国家', '职位', '企业', '语言', '方法', '核心', '方面', '工程师', '方向']\n",
      "使用tf-idf\n",
      "['算法', '经验', '岗位职责', '能力', '技术', '编程', '专业', '硕士', '团队', '项目', '软件', '文档', '产品', '公司', '程序', '系统', '图像处理', '岗位', '硬件', '计算机', '流程', '语言', '平台', '架构', '责任心', '方案', '程序设计', '模型', '代码', '职位', '框架', '电子', '模块', '电路', '基础', '行业', '精神', '问题', '资格', '领域', '数据库', '客户', '原理', '业务', '研究生', '数学', '机器人', '工具', '学历', '工程师']\n"
     ]
    }
   ],
   "source": [
    "# 程序\n",
    "import jieba\n",
    "import jieba.analyse\n",
    "jieba.load_userdict(\"userdict.txt\") \n",
    "file_name = \"context/program.txt\"\n",
    "content = open(file_name, 'r',encoding='utf-8').read()\n",
    "# content = '酒店的床真不错，房间也合适'\n",
    "# topK表示输出多少个关键词,withWeight表示是否输出权重，如果想要获取权重,for x,w并将withWeight=True\n",
    "# allowPOS表示输出的词性\n",
    "# print(content)\n",
    "# 只保留名词\n",
    "print('使用text-rank')\n",
    "dic = jieba.analyse.textrank(content, topK=50, withWeight=False, allowPOS=('n'))\n",
    "print(dic)\n",
    "#\n",
    "print('使用tf-idf')\n",
    "content = open(file_name, 'r',encoding='utf-8').read()\n",
    "# 10表示输出的前10个\n",
    "tags = jieba.analyse.extract_tags(content, topK=50,withWeight=False,allowPOS=('n'))\n",
    "print(tags)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "使用text-rank\n",
      "['技术', '能力', '经验', '产品', '算法', '公司', '项目', '专业', '团队', '软件', '系统', '行业', '岗位职责', '硕士', '业务', '领域', '数据', '客户', '计算机', '模型', '平台', '方案', '基础', '问题', '规划', '电子', '市场', '工程', '岗位', '编程', '部门', '文档', '精神', '方向', '金融', '数学', '工程师', '企业', '流程', '信息', '指导', '图像处理', '员工', '实际', '架构', '职位', '硬件', '原理', '光学', '报告']\n",
      "使用tf-idf\n",
      "['算法', '经验', '岗位职责', '能力', '专业', '硕士', '技术', '软件', '团队', '项目', '产品', '编程', '文档', '岗位', '系统', '公司', '计算机', '客户', '图像处理', '平台', '领域', '模型', '业务', '行业', '责任心', '职位', '方案', '流程', '语言', '资格', '数学', '数据', '电子', '架构', '精神', '表达能力', '硬件', '模块', '基础', '学历', '框架', '建模', '研究生', '工程师', '规划', '工程', '人工智能', '数据挖掘', '问题', '工具']\n"
     ]
    }
   ],
   "source": [
    "# 软件\n",
    "import jieba\n",
    "import jieba.analyse\n",
    "jieba.load_userdict(\"userdict.txt\") \n",
    "file_name = \"context/software.txt\"\n",
    "content = open(file_name, 'r',encoding='utf-8').read()\n",
    "# content = '酒店的床真不错，房间也合适'\n",
    "# topK表示输出多少个关键词,withWeight表示是否输出权重，如果想要获取权重,for x,w并将withWeight=True\n",
    "# allowPOS表示输出的词性\n",
    "# print(content)\n",
    "# 只保留名词\n",
    "print('使用text-rank')\n",
    "dic = jieba.analyse.textrank(content, topK=50, withWeight=False, allowPOS=('n'))\n",
    "print(dic)\n",
    "#\n",
    "print('使用tf-idf')\n",
    "content = open(file_name, 'r',encoding='utf-8').read()\n",
    "# 10表示输出的前10个\n",
    "tags = jieba.analyse.extract_tags(content, topK=50,withWeight=False,allowPOS=('n'))\n",
    "print(tags)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
